// 知识点1：可以将模版的类型参数看作是类型说明符，类型参数可以用来指定函数的返回类型、函数的参数类型以及在函数体内用于变量的声明和类型转换，在类型参数之前必须加上typename或者class这两个关键字，这两个关键字含义相同，可以互换使用，可以定义多个类型参数

// 知识点2：使用typename更好一点，因为我们还可以使用内置类型(非类)作为模版的类型参数

// 知识点3：模版直到实例化的时候才会产生代码，所以我们传入的实参类型在函数的体内需要满足各项的操作，比如书中例子使用了<这个运算符，而有些类类型并没有定义此运算符，这样就会报错

// 知识点4：保证传递给模版的实参支持模版的所有操作，以及这些操作在模版中正确工作，非常重要
#include <iostream>
#include "ex16_2.h"
using namespace std;

class Sales_data {};

int main(int argc, char** argv) {
  Sales_data s1, s2;
  cout << compare(5, 6) << endl;
  cout << compare(s1, s2) << endl;
  system("pause");
  return 0;
}